using System.Data;
using MySqlConnector;

namespace Front._1124;

public partial class BookMain : Form
{
    public BookMain()
    {
        InitializeComponent();
    }

    private void BookMain_Load(object sender, EventArgs e)
    {
        //初始化操作
        //查询所有的图书
        GetAllBooks();

        //查询所有的图书分类
        GetAllCategories();
    }

    private void GetAllCategories()
    {
        using var connection = new MySqlConnection("server=localhost;port=3306;database=book;user=root;password=root;charset=utf8mb4;AllowPublicKeyRetrieval=True;");
        connection.Open();
        
        string sql = "select distinct book_category  from book_info";
        MySqlDataAdapter  adapter = new MySqlDataAdapter(sql, connection);
        DataSet  dataSet = new DataSet();
        adapter.Fill(dataSet, "book_info_category");
        DataTable? dataTable = dataSet.Tables["book_info_category"];
        DataRow? row = dataTable.NewRow();
        row[0] = "全部";
        dataTable.Rows.InsertAt(row,0);
        this.comboBox1.DataSource = dataTable;
        this.comboBox1.DisplayMember = dataTable.Columns[0].ColumnName;

    }

    private void GetAllBooks()
    {
        using var connection = new MySqlConnection("server=localhost;port=3306;database=book;user=root;password=root;charset=utf8mb4;AllowPublicKeyRetrieval=True;");
        connection.Open();
        
        string sql = "SELECT book_id ,isbn,book_name,author FROM  book_info";
        MySqlDataAdapter  adapter = new MySqlDataAdapter(sql, connection);
        DataSet  dataSet = new DataSet();
        adapter.Fill(dataSet, "book_info");
        this.dataGridView1.DataSource = dataSet.Tables["book_info"];
    }

    private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        DialogResult result = MessageBox.Show("确定删除这条数据吗？","警告",MessageBoxButtons.OKCancel);
        if (result == DialogResult.OK)
        {
           int bookId = (int)this. dataGridView1.SelectedRows[0].Cells[0].Value;
           using var connection = new MySqlConnection("server=localhost;port=3306;database=book;user=root;password=root;charset=utf8mb4;AllowPublicKeyRetrieval=True;");
           connection.Open();
           string sql = "delete from book_info where book_id=@book_id";
           using var command = new MySqlCommand(sql, connection);
           command.Parameters.AddWithValue("@book_id", bookId);
          int count = command.ExecuteNonQuery();
          if (count > 0)
          {
              MessageBox.Show("删除成功");
              GetAllBooks();
          }
          else
          {
              MessageBox.Show("删除失败");
          }
        }
    }
}